package com.hsnn.medstgmini.base.dict.service.impl;

import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.hsnn.medstgmini.base.dict.dao.DicDrugspecDao;
import com.hsnn.medstgmini.base.dict.dao.DicDrugspecLogDao;
import com.hsnn.medstgmini.base.dict.model.DicDrugspec;
import com.hsnn.medstgmini.base.dict.service.DicDrugspecManager;
import com.hsnn.medstgmini.util.Pagination;


/**
 * 基础库 数据字典 规格字典 接口实现类
 * @author hss@njhsnn
 * 2015年6月9日
 */
@Service()
public class DicDrugspecManagerImpl  implements DicDrugspecManager {

	@SuppressWarnings("unused")
	private static final Logger log = Logger.getLogger(DicDrugspecManagerImpl.class); 
	private DicDrugspecDao dicDrugspecDao;
	
	 @Autowired
	    public void setDicDrugspecDao(DicDrugspecDao dicDrugspecDao) {
	        this.dicDrugspecDao = dicDrugspecDao;
	    }
	 @Autowired
	 private DicDrugspecLogDao dicDrugspecLogDao;
	

	/**
	 * 基础库 数据字典 规格字典 查询
	 */
	@Override
	public Pagination queryDicDrugspecList(Pagination page,DicDrugspec dicDrugspec) {
		page=dicDrugspecDao.queryDicDrugspecList(page,dicDrugspec);
		@SuppressWarnings("unchecked")
		List<Object> list = (List<Object>) page.getRows();
		List<DicDrugspec> data = new ArrayList<DicDrugspec>();
		if(list.size()>0){
			for(int i=0;i<list.size();i++){
				Object[] obj=(Object[]) list.get(i);
				DicDrugspec ds = new DicDrugspec();
				DicDrugspec fds = new DicDrugspec();
				fds.setSpecCode(obj[1]==null?"":obj[1].toString());
				fds.setSpecName(obj[2]==null?"":obj[2].toString());
				ds.setSpecId(obj[0]==null?"":obj[0].toString());
				ds.setFatherCode(fds);
				ds.setSpecCode(obj[3]==null?"":obj[3].toString());
				ds.setSpecName(obj[4]==null?"":obj[4].toString());
				ds.setStatus(obj[5]==null?null:Short.parseShort(obj[5].toString()));
				data.add(ds);
			}
		}
		page.setRows(data);
		return page;
	}

	/**
	 * @category 查询父级规格
	 * @author 韩守松
	 * @date   2015年6月25日
	 * @param  @param FatherId
	 * @param  @return
	 */
	public List<DicDrugspec> getDicDrugspecListByFatherId(String FatherId){
		return dicDrugspecDao.getDicDrugspecListByFatherId(FatherId);
	}

	/**
	 * 
	 *@category 停用启用（状态改变）
	 *@author wangbing
	 *@date 2015年6月9日
	 *void
	 */
	@Transactional
	@Override
	public void changeStatus(DicDrugspec dicDrugspec) {
		dicDrugspecDao.changeStatus(dicDrugspec);
	}
	
	@Transactional
	@Override
	public Pagination initEdit(Pagination page){
		return dicDrugspecDao.initEdit(page);
	}
	
	@Transactional
	@Override
	public void updateSpec(Pagination page) {
		dicDrugspecDao.updateSpec(page);
		
	}
	
	@Transactional
	@Override
	public void addSpec(Pagination page) {
		dicDrugspecDao.addSpec(page);
		
	}

	/**
	 * 根据code或name查看有无重复数据
	 * @param code,name
	 * @return
	 */
	@Override
	public List<DicDrugspec> getSpecBy(String key,String value,String specId) {
		return dicDrugspecDao.getSpecBy(key,value,specId);
	}
	
	@Override
	public void exportExcel(Pagination page,OutputStream os){
		dicDrugspecDao.exportExcel(page,os);
	}
}